<?php
class BoundFormularioGrupo {
    
    /* Contructor de BoundFormulario de Grupos
     * @param
     * $tipo: Define que tipo de formulario es (Regis, Modif, Detalles)
     * $grupo: Si es un formulario para Deta o Modi, aquí se mandan los datos del grupo
     * $listaCurTall: Trae la lista de CursosTalleres o trae el CursoTaller que ya se eligió para el grupo
     * $dias: arreglo que tiene el o los días de la semana que se dara el grupo
     * $listaActiv: Trae la lista de Tareas referentes a los grupos
     * $listaServidores: Trae la lista de servidores sociales para asignar las tareas
     * $listaModu: Trae la lista de modulos del cursoTaller (Solo se utiliza en Modi y Detalles)
     * $listaProfes: Trae la lista de profesores para asignar a los modulos (Solo se utiliza en Modi y Detalles)
     * $relacionModuProfe: Trae la lista de modulos del cursoTaller (Solo se utiliza en Modi y Detalles)
     * $relacionActiServ: Trae la lista de profesores para asignar a los modulos (Solo se utiliza en Modi y Detalles)
     */
    public function __construct($tipo, $grupo, $listaCurTall, $dias, $listaActiv, $listaServidores, $listaModu, $listaProfes, $relacionModuProfe, $relacionActiServ) {
        ?>
        
        <div class="inner-heading">
            <div class="container2">
                <div class="row">
                    <div class="span13">
                        <h1 class="animated fadeInDown delay1"><?echo ( $tipo == "R" ? "Registrar" : ( $tipo == "D" ? "Detalles de" : "Modificar" ) )?> Grupo</h1>
                        <p class="animated fadeInDown delay2"></p>
                    </div>
                </div>
            </div>
        </div>
        <form id="frmRegis">
            <table>
                <tbody>
                    <tr>
                        <td>
                            <? if ($tipo != "D") { ?> 
                                <input type="button" value="<?echo ( $tipo == "R" ? "Registrar" : "Modificar") ?>" onclick="ajaxConId('controllers/CtlGestionGrupos.php', '<?echo ( $grupo == NULL ? "regisGrupo" : "modifGrupo" )?>', 'frmRegis', 'contenido', <?echo ( $grupo == NULL ? "0" : $grupo['gridgrupo'] )?>)"/>
                            <? }
                            if ($tipo == 'M') { 
                                    echo "<input type='button' value='Cancelar Grupo' onclick=\"realizarAccionDeGrupo($grupo[gridgrupo], 'cancelGrupo')\">";
                                    echo ( $grupo['grconstancias'] == 'N' ? "<input type='button' value='Registrar que las constancias se han entregado' onclick=\"realizarAccionDeGrupo($grupo[gridgrupo], 'constanciasEntregadas')\">" : "" );
                                } ?>
                            <input type="button" value="Regresar" onclick="ajax('controllers/CtlGestionGrupos.php', 'menuPrinc', 'vacio', 'contenido')">
                        </td>
                    </tr>
                    <tr>
                        <th colspan="2">Curso o Taller
                        <?  //Si se manda R es un formulario para el registro del grupo
                            if ($tipo == 'R') {
                                ?>
                                    </th>
                                </tr>
                                    <td>Seleccione un Curso o Taller</td>
                                                    <th><select id="curTall" name="curTall" onchange="ajaxConId('controllers/CtlGestionGrupos.php', 'listarModulos', 'vacio', 'modulos', (document.getElementById('curTall')[document.getElementById('curTall').selectedIndex].value));" class="required">
                                                    <option value="">Curso/Taller</option>
                                <?
                                    foreach ($listaCurTall as $cursoTaller) {
                                        echo "<option value='$cursoTaller[cutaidcursotaller]'>$cursoTaller[cutanombre]</option>";
                                    }
                                ?>
                                    </select></th>
                                <?
                            //Si se manda D o M es para la consulta o modificación del grupo
                            } else {
                                echo ": $listaCurTall[cutanombre]</th><input type='hidden' name='curTall' value='$listaCurTall[cutaidcursotaller]'>";
                            }
                        ?>
                    </tr>
                        <?
                            if ($tipo == 'R') {
                                echo '<tr><td colspan="2"><div id="modulos"></div></td></tr>';
                            } else {
                                $this->listarModulosProfesores($tipo, $listaModu, $listaProfes, $relacionModuProfe);
                            }
                        ?>
                    <tr>
                        <th colspan="2">Periodo de curso</th>
                    </tr>
                    <tr>
                        <td>Fecha de inicio *</td>
                            <th><input type="date" class="required" name="fecIni" id="fecIni" value="<?echo ( $grupo == NULL ? date("Y-m-d") : $grupo['grfecini'] )?>" <? echo ($tipo == "D" ? "readonly" : "") ?> onchange="compHorarioModulos()"  /></th>
                    </tr>
                    <tr>
                        <td>Fecha de termino *</td>
                        <th><input type="date" class="required" name="fecFin" id="fecFin" value="<?echo ( $grupo == NULL ? date("Y-m-d") : $grupo['grfecfin'] )?>" <? echo ($tipo == "D" ? "readonly" : "") ?> onchange="compHorarioModulos()"  /></th>
                    </tr>
                    <tr>
                        <th colspan="2">Horario</th>
                    </tr>
                    <tr>
                        <td colspan="2">Días a la semana * &nbsp;&nbsp;&nbsp;&nbsp;
                            L-&nbsp;&nbsp;<input type="checkbox" name="dias[]" id="dias" value="1" onchange="compHorarioModulos()" <? echo ( $tipo != 'R' && (in_array('1', $dias)) ? "checked" : "" ); echo ( ($tipo == 'D') ? " disabled" : "" ); ?> />
                            M-&nbsp;&nbsp;<input type="checkbox" name="dias[]" id="dias" value="2" onchange="compHorarioModulos()" <? echo ( $tipo != 'R' && (in_array('2', $dias)) ? "checked" : "" ); echo ( ($tipo == 'D') ? " disabled" : "" ); ?> />
                            MC-&nbsp;&nbsp;<input type="checkbox" name="dias[]" id="dias" value="3" onchange="compHorarioModulos()" <? echo ( $tipo != 'R' && (in_array('3', $dias)) ? "checked" : "" ); echo ( ($tipo == 'D') ? " disabled" : "" ); ?> />
                            J-&nbsp;&nbsp;<input type="checkbox" name="dias[]" id="dias" value="4" onchange="compHorarioModulos()" <? echo ( $tipo != 'R' && (in_array('4', $dias)) ? "checked" : "" );  echo ( ($tipo == 'D') ? " disabled" : "" ); ?> />
                            V-&nbsp;&nbsp;<input type="checkbox" name="dias[]" id="dias" value="5" onchange="compHorarioModulos()" <? echo ( $tipo != 'R' && (in_array('5', $dias)) ? "checked" : "" ); echo ( ($tipo == 'D') ? " disabled" : "" ); ?> />
                            S-&nbsp;&nbsp;<input type="checkbox" name="dias[]" id="dias" value="6" onchange="compHorarioModulos()" <? echo ( $tipo != 'R' && (in_array('6', $dias)) ? "checked" : "" ); echo ( ($tipo == 'D') ? " disabled" : "" ); ?> />
                        </td>
                    </tr>
                    <tr>
                        <td>Hora de inicio </td>
                        <th><input type="time"  onchange="compHorarioModulos()" name="horaIni" id="horaIni" <? echo ($tipo == "D" ? "readonly" : "") ?> class="required" <? echo ($grupo != null ? "value='$grupo[hohoraini]'" : "value='01:00'" ) ?> /></th>
                    </tr>
                    <tr>
                        <td>Hora de termino </td>
                        <th><input type="time" onchange="compHorarioModulos()" name="horaFin" id="horaFin" <? echo ($tipo == "D" ? "readonly" : "")?> class="required" <? echo ($grupo != null ? "value='$grupo[hohorafin]'" : "value='01:00'" ) ?>/></th>
                    </tr>
                    <tr>
                        <td>Horas total de Grupo:</td>
                        <th><input type="text" value="" id="totalGrupo" class="required numeric" readonly></th>
                    </tr>
                    <!-- Automaticamente lanzamos el metodo para calcular las horas totales del grupo -->
                    <script>
                        $( document ).ready(function() {
                            compHorarioModulos();
                        });
                    </script>'
                    <tr>
                        <th colspan="2">Generales</th>
                    </tr>
                    <tr>
                        <td colspan="2">Tipo de grupo * &nbsp;&nbsp;&nbsp;&nbsp;
                            Interno - &nbsp;&nbsp;<input type="radio" name="tipo" id="tipo" value="I" <? echo ( $tipo == 'R' ? "checked" : ( $grupo['grtipo'] == 'I' ? "checked" : "" ) ); echo ( ($tipo == 'D') ? " disabled" : "" ); ?> class="required"/>
                            Externo - &nbsp;&nbsp;<input type="radio" name="tipo" id="tipo" value="E" <? echo ( $grupo['grtipo'] == 'E' ? "checked" : "" ); echo ( ($tipo == 'D') ? " disabled" : "" ); ?> class="required"/>
                        </td>
                    </tr>
                    <tr>
                        <td>Comentarios para grupo externo </td>
                        <th><input type="text" name="coment" <? echo "value='$grupo[grcomentexterno]'" ?> <? echo ($tipo == "D" ? "readonly" : "") ?> ></th>
                    </tr>
                    <tr>
                        <td>Mínimo de alumnos</td>
                        <th><input type="number" name="minAlum" <? echo "value='$grupo[gralummin]'" ?> <? echo ($tipo == "D" ? "readonly" : "") ?> class="required numeric" ></th>
                    </tr>
                    <tr>
                        <td>Sede </td>
                        <th><input type="text" name="sede" <? echo "value='$grupo[grdirsede]'" ?> <? echo ($tipo == "D" ? "readonly" : "") ?> class="required" ></th>
                    </tr>
                    <tr>
                        <td>Lugar </td>
                        <th><input type="text" name="lugar" <? echo "value='$grupo[grlugsede]'" ?> <? echo ($tipo == "D" ? "readonly" : "") ?> class="required" ></th>
                    </tr>
                    <tr>
                        <td>Costo Inscripción </td>
                        <th><input type="number" name="costo" <? echo "value='$grupo[grprecio]'" ?> <? echo ($tipo == "D" ? "readonly" : "") ?> class="required numeric" placeholder="0.00"></th>
                    </tr>
                    <tr>
                        <th colspan="2">Asignación de tareas</th>
                    </tr>
                        <?
                            $this->listarActiviServidores($tipo, $listaActiv, $listaServidores, $relacionActiServ);
                        ?>
                    </tr>
                    <tr>
                        <td>
                            <? if ($tipo != "D") { ?> 
                                <input type="button" value="<?echo ( $tipo == "R" ? "Registrar" : "Modificar") ?>" onclick="ajaxConId('controllers/CtlGestionGrupos.php', '<?echo ( $grupo == NULL ? "regisGrupo" : "modifGrupo" )?>', 'frmRegis', 'contenido', <?echo ( $grupo == NULL ? "0" : $grupo['gridgrupo'] )?>)"/>
                            <? }
                            if ($tipo == 'M') { 
                                    echo "<input type='button' value='Cancelar Grupo' onclick=\"realizarAccionDeGrupo($grupo[gridgrupo], 'cancelGrupo')\">";
                                    echo ( $grupo['grconstancias'] == 'N' ? "<input type='button' value='Registrar que las constancias se han entregado' onclick=\"realizarAccionDeGrupo($grupo[gridgrupo], 'constanciasEntregadas')\">" : "" );
                                } ?>
                            <input type="button" value="Regresar" onclick="ajax('controllers/CtlGestionGrupos.php', 'menuPrinc', 'vacio', 'contenido')">
                        </td>
                    </tr>
                </tbody>
            </table>
        </form>        

        <?
    }
    
    /* Muestra la lista de actividades de los grupos, para cada uno muestra una lista de servidores sociales
     * $listaActivi: contiene todas las actividades de los grupos
     * $listaServidores: contine todos los servidores sociales
     * $relacionActiServ: contiene las relaciones (Actividad - ServidorSocial)
     */
    function listarActiviServidores ($tipo, $listaActivi, $listaServidores, $relacionActiServ) {
        
        //Variable para recorrer la lista de relaciones Actividad/ServidorSocial
        $ePos = 0;
                                    
        foreach ($listaActivi as $actividad) {
            
            //Variables que se usarán para almacenar los SELECTs (servidores para actividad) 
            //o INPUT[TEXT] que tendrá el servidor y su actividad ya hecha
            $cad = "";
            $cad2 = "";
            
            //Variable para saber si la actividad tiene un servidor social asignado
            $conServidor = false;
            
            echo "<tr><td>$actividad[acgrnombre]<hr></td>";
            
            //Cuando se elige la opción Ver Detalles, las etiquetas SELECTs cambian a INPUT[TEXT] para mostrar el servidor ya elegido
            if ($tipo == "D") {
                
                //Bandera para saber si esa actividad ya tiene Servidor social asignado
                $servidorAsignado = false;
                
                foreach ($listaServidores as $servidor) {

                    //IF para determinar si el servidor socual ya ha sido asigando a una tarea
                    if ( (!is_null($relacionActiServ)) && count($relacionActiServ) > $ePos 
                                && $relacionActiServ[$ePos]['acseidactividadgrupo'] == $actividad['acgridactividadgrupo'] 
                                && $relacionActiServ[$ePos]['acseidservidorsocial'] == $servidor['usidusuario']) {

                        echo "<th><input type='text' value='$servidor[penombre] $servidor[peapepat] $servidor[peapemat]' readonly></th>
                                <td>". ($relacionActiServ[$ePos]['acseestado'] == 'H' ?  "Hecha" : "Pendiente") ."</td>";

                        $servidorAsignado = true;
                        $ePos++;
                    }
                }
                
                if (!$servidorAsignado) echo "<th><input type='text' value='Sin asignar' readonly></th><td>------------------</td>";
                
            } else {
                
                $cad .= "<th><select id='servidor$actividad[acgridactividadgrupo]' 
                            name='servidor$actividad[acgridactividadgrupo]' ". 
                                (($tipo == 'D') ? "onfocus='this.defaultIndex=this.selectedIndex;' onchange='this.selectedIndex=this.defaultIndex;') " : "" )
                        ."><option value=''>Seleccione un servidor social</option>";
                        
                    foreach ($listaServidores as $servidor) {
                        $cad .= "<option value='$servidor[usidusuario]' ";

                        if ( (!is_null($relacionActiServ)) && count($relacionActiServ) > $ePos 
                                    && $relacionActiServ[$ePos]['acseidactividadgrupo'] == $actividad['acgridactividadgrupo'] 
                                    && $relacionActiServ[$ePos]['acseidservidorsocial'] == $servidor['usidusuario']) {

                            $cad .=  "selected";
                            
                            $conServidor = true;
                            
                            if ($relacionActiServ[$ePos]['acseestado'] == 'H') {
                                $cad2 = "<th><input type='text' value='$servidor[penombre] $servidor[peapepat] $servidor[peapemat]' readonly></th>
                                            <td>Hecha</td>";
                            }

                            $ePos++;
                        }

                        $cad .= ">$servidor[penombre] $servidor[peapepat] $servidor[peapemat]</option>";
                    }
                    
                    $cad .= "</select></th>". ($tipo != 'R' ? ("<td>". ($conServidor == true ? "Pendiente" : "------------------" ) ."</td>") : ("") ) ."</tr>
                        <script type='text/javascript'>
                            if ($(\"#servidor". $actividad['acgridactividadgrupo']."\").val() != \"\") {
                                $(\"#servidor". $actividad['acgridactividadgrupo'] ."\" ).attr( \"class\", \"required\" );
                            }
                        </script>";
            }
            
            if ($cad2 == "") {
                echo $cad;
            } else {
                echo $cad2;
            }
        }
        
    }
    
    /* Muestra la lista de modulos del cursoTaller, para cada uno muestra una lista de profesores
     * $tipo: establece la configuración para el formulario (detalles, modif, regis)
     * $listaModulos: contiene todas los modulos del curso/taller
     * $listaProfesores: contine todos los profesores
     * $relacionModuProfe: contiene las relaciones (Modulo - Profesor)
     */
    function listarModulosProfesores ($tipo, $listaModulos, $listaProfesores, $relacionModuProfe) {
        ?>                    
        <tr>
            <th colspan="2">Módulos</th>
        </tr>                  
        <?
        //Total de horas de los módulos
        $eTotalHoras = 0;
        //Variable para recorrer la lista de relaciones ModuloProfesor
        $ePos = 0;        
                                    
        //Ciclo para recorrer los módulos que pertenecen a ese grupo
        foreach ($listaModulos as $modulo) {
            echo "<tr>
                    <td>$modulo[monombre] - $modulo[mohoras] horas</td>";

                        ?>
                        <th><select id="curTall" name="profesor<? echo $modulo['moidmodulo'] ?>" <? if ($tipo == 'D') echo 'onfocus="this.defaultIndex=this.selectedIndex;" onchange="this.selectedIndex=this.defaultIndex;"'; ?> class="required" >
                                <option value="">Seleccione un Profesor</option>
                        <?
                            //Ciclo para listar los profesores activos en la cartera de CENAPyME
                            foreach ($listaProfesores as $profesor) {
                                echo "<option value='$profesor[pridprofesor]' ";
                                
                                //IF para determinar si el profesor ya ha sido asigando a un modulo del grupo actual
                                if ( (!is_null($relacionModuProfe)) && count($relacionModuProfe) > $ePos 
                                            && $relacionModuProfe[$ePos]['mopridmodulo'] == $modulo['moidmodulo'] 
                                            && $relacionModuProfe[$ePos]['mopridprofesor'] == $profesor['pridprofesor']) {
                                    
                                    echo "selected";
                                    
                                    $ePos++;
                                }
                                        
                                echo ">$profesor[penombre] $profesor[peapepat] $profesor[peapemat]</option>";
                            }
                        ?>
                            </select></th><td>
                        <?
                            if ($tipo != "R") { 
                                ?>
                                <iframe scrolling="no" height="45" src="controllers/CtlGestionGrupos.php?opc=mostrarContrato<? echo ("&dir=".$relacionModuProfe[$ePos-1]['moprdircartacompro']."&id=".$relacionModuProfe[$ePos-1]['mopridmoduloprofesor']."&tipo=$tipo") ?>" ></iframe>
                                <?
                            }
                        ?>
                            </td></tr>
                        <?
            $eTotalHoras += $modulo['mohoras'];
        }
        echo "<tr>
                <td>Total horas módulos - $eTotalHoras horas</td>
            </tr>";
        
    }
}

/*
 *  ALTERNATIVE ---->  function listarActiviServidores ($tipo, $listaActivi, $listaServidores, $relacionActiServ) {

      Muestra la lista de actividades de los grupos, para cada uno muestra una lista de servidores sociales
     * $tipo: tipo de formualario que se mostrara
     * $listaActivi: contiene todas las actividades de los grupos
     * $listaServidores: contine todos los servidores sociales
     * $relacionActiServ: contiene las relaciones (Actividad - ServidorSocial)
    function listarActiviServidores ($tipo, $listaActivi, $listaServidores, $relacionActiServ) {
        
        //Variable para saber que servidor social que le pertenece determinada actividadGrupo
        $eListaActiv = 1;        
        //Variable para recorrer la lista de relaciones Actividad/ServidorSocial
        $ePos = 0;
                                    
        foreach ($listaActivi as $actividad) {
            echo "<tr>
                    <td>$actividad[acgrnombre]</td>";
            
            if ($tipo == "D") {
                
                //Bandera para saber si esa actividad ya tiene Servidor social asignado
                $servidorAsignado = false;
                
                foreach ($listaServidores as $servidor) {

                    if ( (!is_null($relacionActiServ)) && count($relacionActiServ) > $ePos 
                                && $relacionActiServ[$ePos]['acseidactividadgrupo'] == $actividad['acgridactividadgrupo'] 
                                && $relacionActiServ[$ePos]['acseidservidorsocial'] == $servidor['usidusuario']) {

                        echo "<th><input type='text' value='$servidor[penombre] $servidor[peapepat] $servidor[peapemat]' readonly></th>";

                        $servidorAsignado = true;
                        $ePos++;
                    }
                }
                
                if (!$servidorAsignado) echo "<th><input type='text' value='-----------' readonly></th>";

            } else {

                ?>
                    <th><select id="curTall" name="servidor<? echo $eListaActiv ?>">
                        <option value="0">Seleccione un servidor social</option>
                <?
                    foreach ($listaServidores as $servidor) {
                        echo "<option value='$servidor[usidusuario]' ";

                        if ( (!is_null($relacionActiServ)) && count($relacionActiServ) > $ePos 
                                    && $relacionActiServ[$ePos]['acseidactividadgrupo'] == $actividad['acgridactividadgrupo'] 
                                    && $relacionActiServ[$ePos]['acseidservidorsocial'] == $servidor['usidusuario']) {

                            echo "selected";

                            $ePos++;
                        }

                        echo ">$servidor[penombre] $servidor[peapepat] $servidor[peapemat]</option>";
                    }
                    
                    $eListaActiv++;
                ?>
                    </select></th>
                <?
            }
            echo "</tr>";
        }
    }
 */
?>